A host machine (e.g., computer or server) is typically enabled to simultaneously run one or more virtual machines using a software application known as a hypervisor. The hypervisor allocates portions of the host machine's resources to each of the virtual machines. The hypervisor virtualizes the underlying hardware of the host machine or emulates hardware devices, making the use of the virtual machine transparent to a local or remote client. Typically, a hypervisor manages allocation and virtualization of computer resources and performs context switching, as may be necessary, to cycle between various virtual machines, such that many virtual machines may be run simultaneously.
Each virtual machine may function as a self-contained platform, running applications and its own operating system that is referred to as a guest or guest operating system. Guests may be accessed by clients to perform computing tasks. Conventionally, each guest operating system includes a kernel that performs important tasks such as executing processes and handling interrupts.